From 733ed00933ecc240da0db5350186b7beac106776 Mon Sep 17 00:00:00 2001 From: robertl Date: Thu, 3 Nov 2005 04:19:38 +0000 Subject: [PATCH] From Paul Fox - don't walk past end of buf when prescanning bogus GPX. --- gpsbabel/gpx.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gpsbabel/gpx.c b/gpsbabel/gpx.c index 4e7c841f2..2be37b87f 100644 --- a/gpsbabel/gpx.c +++ b/gpsbabel/gpx.c @@ -1023,6 +1023,7 @@ gpx_read(void) int done = 0; char *buf = xmalloc(MY_CBUF_SZ); int result = 0; + int extra; while (!done) { if ( fd ) { @@ -1047,7 +1048,8 @@ gpx_read(void) buf[len] = '\0'; badchar = buf+len-maxentlength; badchar = strchr( badchar, '&' ); - while ( badchar ) { + extra = maxentlength - 1; /* for terminator */ + while ( badchar && len < MY_CBUF_SZ-1) { int extra = maxentlength-1; /* for terminator */ semi = strchr( badchar, ';'); while ( extra && !semi ) { -- 2.30.2